1. The Field of the Invention
The field of the present invention is that of sharing data messages and other data objects between different users on different machines over a wide area network, such as the Internet, wherein multiple copies of the data objects exist. Further, any modifications made to the data messages or data objects are propagated outward to each of the replicated copies. More specifically, the present invention deals with data replication over a store and forward protocol, such as Internet email messages according to the RFC 822 specification, that are entirely client-based and do not rely on a particular type of server or server protocol in order to implement data object replication between the different users.
2. Present State of the Art
One of the great benefits of network computing is the ability to share information between different users. While most network solutions allow a single file to be shared or accessed by various clients, a replication of files (or other data objects such as email messages, facsimiles, etc.) over the network allows copies of a file to reside at each client. Indeed, full data replication allows each user to have a copy of a particular data object that may be manipulated and edited at will or may simply be reviewed as a read-only data object. Naturally, it is beneficial, for those items that are edited or otherwise modified, to have such changes replicated to the other copies of the data objects so that all clients or users of the information will have the most current and up-to-date version of a particular data object.
One early example of such replication-based information sharing are Internet news groups that allow users to post and receive messages to a news server. A user will access and browse titles of various news articles found in a database managed by the news server and then download those which are selected. Further, if the user submits an article to be read by others, it will be "posted" to the news server that will in turn distribute the article to other news servers thereby making the article available to all clients by replicating the article to each and every news server. In order to benefit from such a system, each client must communicate with a news server through the particular news server protocol. Note that the actual replication of the news articles is done by the news servers rather than the clients that access the news servers.
Another example of a server-based replication scheme may be seen with many electronic mail (email) servers used as a component in a corporate communications solution. For example, a Microsoft Exchange email server supports the concept of "public" folders that replicate messages out among different individual users. Messages placed in a public folder will be forwarded automatically to others that have access to the public folder so that each user will then have a copy of the message. In this manner, one person may receive a message, copy it to the public folder, and all others will be able to receive the message in their respective Exchange inbox.
While automatic controls may omit the step of requiring a user to manually copy the message to the public folder, the common Exchange server is required in order to replicate the message to the different clients. Furthermore, each client must be an "Exchange" client so that it may communicate with the Exchange email server. Again, much of the actual replication mechanics are performed at the server rather than at the individual clients.
FIG. 1 logically illustrates the client/server model predominate in the prior art for replicating data objects between clients. A plurality of clients 20a-20e are connected to a server 22 in order to communicate one with another. Each client 20a-20e, for example, could be an Exchange client while the server 22 could be an Exchange email server. In this arrangement, all replication is handled by the server 22 and only those clients that can communicate or are compatible with the server 22 may take advantage of any form of replication service. This allows for homogeneous clients to replicate data messages or other data objects and have changes made to the messages automatically reflected to each and every client by the particular server through which they communicate. Again, the clients have no responsibility for the replication service.
A major disadvantage results from the prior art structure in that heterogeneous clients may not participate in replication since compatibility with the particular server performing the replication services is required. This means that an Exchange client could not share replicated email messages with a Novell Groupwise client. Further, even clients of the same type may not be able to share replicated data messages if connected to different servers unless the servers can replicate the messages between themselves.
What is needed is a way to provide client-to-client replication of data objects without regard to the specific mechanics of communication therebetween through servers, special transport layers, protocols with a particular server for replication functionality, etc. In other words, a common protocol may allow communication between the clients that can in turn be used for building a replication scheme controlled by the clients themselves that use the communications protocol solely for delivering messages between the different clients.